import ora from 'ora';

// 添加加载动画
export async function wrapLoading(fn, message, ...args) {
    const { start = 'waiting start...', success = 'success...', fail = 'fail...' } = message
    // 使用 ora 初始化，传入提示信息
    const spinner = ora(start);
    // 开始加载动画
    spinner.start();
    spinner.color = 'blue'
    spinner.text = 'loading...'
    try {
        // 执行传入方法 fn
        const result = await fn(...args);
        spinner.succeed(success);
        // 状态为修改为成功
        return result;
    } catch (error) {
        // 状态为修改为失败
        spinner.fail(fail)
    }
}

export default {
    wrapLoading
}